import axios from 'axios'
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)
export default new Vuex.Store({
  actions:{
    // 专门用于处理“奇数再加”这个动作的
    jishuJia({commit,state},value){
      if(state.sum % 2){
        commit('JIA',value)
      }
    },
    // 专门用于处理“等一等加”这个动作的
    dengJia({commit},value){
      setTimeout(() => {
        commit('JIA',value)
      }, 1000);
    },
    // 专门用于处理“联系服务器的加”这个动作的
    async fuwuJia({commit}){
      try {
        let result = await axios.get('https://api.uomg.com/api/rand.qinghua')
        console.log(result.data.content)
        commit('JIA',result.data.content.length)
      } catch (error) {
        alert(error.message)
      }
    }
  },
  mutations:{
    // 真正用于执行“加”
    JIA(state,value){
      state.sum += value
    },
    // 真正用于执行“减”
    JIAN(state,value){
      state.sum -= value
    }
  },
  // 原材料
  state:{
    sum:1,
    version:'1.0',
    author:'atguigu'
  },
  getters:{
    // upperAuthor何时调用？ —— 有人读取upperAuthor时。
    // upperAuthor中的this是谁？ —— 不是vm也不是vc，总之不用this
    upperAuthor(state){
      return state.author.toUpperCase()
    },
    bigSum(state){
      return state.sum * 10
    }
  }
})